using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using Sispe.Entities;

namespace Sispe.Repository.Mapping
{
    public class DERECHO_HABIENTEMap : EntityTypeConfiguration<DERECHO_HABIENTE>
    {
        public DERECHO_HABIENTEMap()
        {
            // Primary Key
            this.HasKey(t => t.IdDerechoHabiente);

            // Properties
            // Table & Column Mappings
            this.ToTable("DERECHO_HABIENTE");
            this.Property(t => t.IdDerechoHabiente).HasColumnName("IdDerechoHabiente");
            this.Property(t => t.IdPersona).HasColumnName("IdPersona");
            this.Property(t => t.IdVinculoFamiliar).HasColumnName("IdVinculoFamiliar");
            this.Property(t => t.IdDocumentoSustenta).HasColumnName("IdDocumentoSustenta");
            //this.Property(t => t.IdOcupacion).HasColumnName("IdOcupacion");
            this.Property(t => t.ConstanciaFisica).HasColumnName("ConstanciaFisica");
            this.Property(t => t.Activo).HasColumnName("Activo");

            // Relationships
            this.HasRequired(t => t.DOCUMENTO_SUSTENTA)
                .WithMany(t => t.DERECHO_HABIENTE)
                .HasForeignKey(d => d.IdDocumentoSustenta);
            this.HasRequired(t => t.PERSONA)
                .WithMany(t => t.DERECHO_HABIENTE)
                .HasForeignKey(d => d.IdPersona);
            this.HasRequired(t => t.VINCULO_FAMILIAR)
                .WithMany(t => t.DERECHO_HABIENTE)
                .HasForeignKey(d => d.IdVinculoFamiliar);
            this.HasRequired(t => t.TRABAJADOR)
                .WithMany(t => t.DERECHO_HABIENTE)
                .HasForeignKey(d => d.IdTrabajador);
        }
    }
}
